The present invention relates to a database system constructed on a computer main-memory area. Particularly, this invention relates to a distributed data-processing database-management system constructed on the Internet or intranets, with a database-managing function and also other several functions such as transaction management and distributed system-administration for backups, recovery from faults and load distribution.
Database systems for real-time monitoring and controlling of data shared by computers distributed over a network have to process (search and update) a huge amount of data at a high speed. Such database performance thus depends on data-management systems that provide a means of accessing those data. Enhanced data-management systems could manage all data on a main-memory area, which are usually stored on an external storage device such as a hard disk. Increased storage capacity for main memories has allowed all data to remain in a main-memory area as resident data even in the present hardware environments.
Mere caching of a data-managing system on a main-memory area to known external storage devices cannot achieve high performance for real-time applications. There are two reasons for such a drawback: (a) a huge amount of data has to be transferred between an application and a data-managing system; and (b) execution of algorisms designed for external storage devices on a main-memory area of each computer cannot achieve high performance. In addition, limited functions of such algorisms designed for external storage devices and provided by a data-managing system cannot lighten loads for development of applications, nonetheless achieving high-speed processing a little bit.
There are a lot of demands for high reliability on systems running 24 hours for 365 days. These systems mostly have a redundant structure because system down is not allowed for them no matter what happens. Middleware (MA) and hardware (HW) that support such highly reliable functions have to be controlled by application software. This requires achievement of such highly reliable functions and also accessibility to data structure, which results in low application quality due to application complexity with bugs to a highly reliable redundant structure. Development thus has been waited for easy database-managing system settings and also highly-reliable data-managing functions.
As discussed above, known database systems are not sufficient for speed, reliability and function. In detail, these systems have the following drawbacks:
(1) System Halt due to Functional Alteration
Initial data structure could not follow functional alterations or extension required during system development. Such requirements are met by database alterations, which however bring a system to a halt. Functional alterations under system halt after the system has run will cost very much. System halt for functional alterations means low maintenance performance.
(2) Difficulty in Structure Alteration
Functional alterations or extension will be required often during system life cycle. Initial data structure may not follow newly added functions which have not been expected in system design. Such added functions are made effective by database alterations which, however, often result in complex data structure. Such complex data structure could cause low maintenance performance, low productivity and low performance.
(3) Low Productivity in Development of Large-Scale System
Development of large-scale systems requires many applications engineers at one time. Data structures are often designed so that each structure can be shared by several applications without consideration to each application characteristics, thus data structures becoming unfriendly to applications engineers. In addition, development of large-scale systems suffers low productivity due to unnecessary processing such as returning to former stages because of no development tools with data-structure developing techniques for large-scale systems.
(4) Difficulty in Local/Remote Procedure
Known database-management systems require RPC (Remote Procedure Call) for any procedures (transactions) to remote machines, which however takes time compared to usual execution of applications due to change in application procedure for transactions to remote computers.